{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.preprocessing import LabelEncoder\n",
    "from sklearn.preprocessing import OneHotEncoder,Binarizer\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "from sklearn.linear_model import LogisticRegression,LinearRegression\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.metrics import accuracy_score,confusion_matrix,mean_squared_error,recall_score,roc_auc_score\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "import joblib\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.metrics import classification_report\n",
    "\n",
    "from sklearn.metrics import RocCurveDisplay\n",
    "from sklearn import metrics\n",
    "from sklearn.metrics import precision_recall_curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "outputs": [
    {
     "data": {
      "text/plain": "     换设备次数  支付失败次数  换IP次数  换IP国次数   交易金额  欺诈标签\n0        0      11      3       5  28836     1\n1        5       6      1       4  21966     1\n2        6       2      0       0  18199     1\n3        5       8      2       2  24803     1\n4        7      10      5       0  26277     1\n..     ...     ...    ...     ...    ...   ...\n995      2       7      7       2  24168     0\n996      1       1      5       1  15216     0\n997      1       7      6       2  18494     0\n998      2       2      8       0  11085     0\n999      0       7      8       0  11308     0\n\n[1000 rows x 6 columns]",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>换设备次数</th>\n      <th>支付失败次数</th>\n      <th>换IP次数</th>\n      <th>换IP国次数</th>\n      <th>交易金额</th>\n      <th>欺诈标签</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0</td>\n      <td>11</td>\n      <td>3</td>\n      <td>5</td>\n      <td>28836</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>5</td>\n      <td>6</td>\n      <td>1</td>\n      <td>4</td>\n      <td>21966</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>6</td>\n      <td>2</td>\n      <td>0</td>\n      <td>0</td>\n      <td>18199</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>5</td>\n      <td>8</td>\n      <td>2</td>\n      <td>2</td>\n      <td>24803</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>7</td>\n      <td>10</td>\n      <td>5</td>\n      <td>0</td>\n      <td>26277</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>...</th>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n    </tr>\n    <tr>\n      <th>995</th>\n      <td>2</td>\n      <td>7</td>\n      <td>7</td>\n      <td>2</td>\n      <td>24168</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>996</th>\n      <td>1</td>\n      <td>1</td>\n      <td>5</td>\n      <td>1</td>\n      <td>15216</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>997</th>\n      <td>1</td>\n      <td>7</td>\n      <td>6</td>\n      <td>2</td>\n      <td>18494</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>998</th>\n      <td>2</td>\n      <td>2</td>\n      <td>8</td>\n      <td>0</td>\n      <td>11085</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>999</th>\n      <td>0</td>\n      <td>7</td>\n      <td>8</td>\n      <td>0</td>\n      <td>11308</td>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n<p>1000 rows × 6 columns</p>\n</div>"
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_excel(\"C:\\\\Users\\\\Administrator\\\\Desktop\\\\月考练习算法题 (2)\\\\月考练习算法题\\\\第3套（修改2）\\\\专高6月考-03附件\\\\信用卡交易数据.xlsx\")\n",
    "df"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "outputs": [
    {
     "data": {
      "text/plain": "   换设备次数  支付失败次数  换IP次数  换IP国次数   交易金额  欺诈标签\n0      0      11      3       5  28836     1\n1      5       6      1       4  21966     1\n2      6       2      0       0  18199     1\n3      5       8      2       2  24803     1\n4      7      10      5       0  26277     1",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>换设备次数</th>\n      <th>支付失败次数</th>\n      <th>换IP次数</th>\n      <th>换IP国次数</th>\n      <th>交易金额</th>\n      <th>欺诈标签</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0</td>\n      <td>11</td>\n      <td>3</td>\n      <td>5</td>\n      <td>28836</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>5</td>\n      <td>6</td>\n      <td>1</td>\n      <td>4</td>\n      <td>21966</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>6</td>\n      <td>2</td>\n      <td>0</td>\n      <td>0</td>\n      <td>18199</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>5</td>\n      <td>8</td>\n      <td>2</td>\n      <td>2</td>\n      <td>24803</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>7</td>\n      <td>10</td>\n      <td>5</td>\n      <td>0</td>\n      <td>26277</td>\n      <td>1</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "outputs": [
    {
     "data": {
      "text/plain": "换设备次数     0\n支付失败次数    0\n换IP次数     0\n换IP国次数    0\n交易金额      0\n欺诈标签      0\ndtype: int64"
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.isnull().sum()\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "outputs": [],
   "source": [
    "X = df.iloc[:,0:-1]\n",
    "y = df[\"欺诈标签\"]"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "outputs": [
    {
     "data": {
      "text/plain": "     换设备次数  支付失败次数  换IP次数  换IP国次数   交易金额\n29       3       2      2       1  12407\n535      2       2      5       2  26720\n695      0       4      0       3  19499\n557      1       5      7       0  27175\n836      3       1      6       3  13909\n..     ...     ...    ...     ...    ...\n106      4       0      6       4  11253\n270      4       1      5       4  25889\n860      4       4      4       0  20915\n435      3       6      0       3  27431\n102      1      12      2       2  22724\n\n[800 rows x 5 columns]",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>换设备次数</th>\n      <th>支付失败次数</th>\n      <th>换IP次数</th>\n      <th>换IP国次数</th>\n      <th>交易金额</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>29</th>\n      <td>3</td>\n      <td>2</td>\n      <td>2</td>\n      <td>1</td>\n      <td>12407</td>\n    </tr>\n    <tr>\n      <th>535</th>\n      <td>2</td>\n      <td>2</td>\n      <td>5</td>\n      <td>2</td>\n      <td>26720</td>\n    </tr>\n    <tr>\n      <th>695</th>\n      <td>0</td>\n      <td>4</td>\n      <td>0</td>\n      <td>3</td>\n      <td>19499</td>\n    </tr>\n    <tr>\n      <th>557</th>\n      <td>1</td>\n      <td>5</td>\n      <td>7</td>\n      <td>0</td>\n      <td>27175</td>\n    </tr>\n    <tr>\n      <th>836</th>\n      <td>3</td>\n      <td>1</td>\n      <td>6</td>\n      <td>3</td>\n      <td>13909</td>\n    </tr>\n    <tr>\n      <th>...</th>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n    </tr>\n    <tr>\n      <th>106</th>\n      <td>4</td>\n      <td>0</td>\n      <td>6</td>\n      <td>4</td>\n      <td>11253</td>\n    </tr>\n    <tr>\n      <th>270</th>\n      <td>4</td>\n      <td>1</td>\n      <td>5</td>\n      <td>4</td>\n      <td>25889</td>\n    </tr>\n    <tr>\n      <th>860</th>\n      <td>4</td>\n      <td>4</td>\n      <td>4</td>\n      <td>0</td>\n      <td>20915</td>\n    </tr>\n    <tr>\n      <th>435</th>\n      <td>3</td>\n      <td>6</td>\n      <td>0</td>\n      <td>3</td>\n      <td>27431</td>\n    </tr>\n    <tr>\n      <th>102</th>\n      <td>1</td>\n      <td>12</td>\n      <td>2</td>\n      <td>2</td>\n      <td>22724</td>\n    </tr>\n  </tbody>\n</table>\n<p>800 rows × 5 columns</p>\n</div>"
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
    "X_train"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "F:\\python38\\lib\\site-packages\\sklearn\\base.py:458: UserWarning: X has feature names, but StandardScaler was fitted without feature names\n",
      "  warnings.warn(\n"
     ]
    }
   ],
   "source": [
    "ss = StandardScaler()\n",
    "X_train = ss.fit_transform(X_train)\n",
    "X_test = ss.transform(X_test)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "outputs": [
    {
     "data": {
      "text/plain": "DecisionTreeClassifier()",
      "text/html": "<style>#sk-container-id-1 {color: black;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeClassifier()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">DecisionTreeClassifier</label><div class=\"sk-toggleable__content\"><pre>DecisionTreeClassifier()</pre></div></div></div></div></div>"
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#决策树\n",
    "tree = DecisionTreeClassifier(criterion='gini',max_depth=None,splitter='best')\n",
    "tree.fit(X_train,y_train)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "outputs": [
    {
     "data": {
      "text/plain": "RandomForestClassifier(max_depth=6)",
      "text/html": "<style>#sk-container-id-2 {color: black;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-2 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-2 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomForestClassifier(max_depth=6)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" checked><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier(max_depth=6)</pre></div></div></div></div></div>"
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 随机森林\n",
    "rf = RandomForestClassifier(n_estimators=100,criterion='gini',max_depth=6)\n",
    "rf.fit(X_train,y_train)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "outputs": [],
   "source": [
    "parameters1 = {'max_depth':[6,10],'splitter':['best','random'],'min_samples_leaf':[1,2]}\n",
    "parameters2 = {'n_estimators':[50,100],'criterion':['gini','entropy'],'max_depth':[6,10]}\n",
    "\n",
    "tree_model = GridSearchCV(tree,parameters1,cv=5)\n",
    "rf_model = GridSearchCV(rf,parameters2,cv=5)\n",
    "\n",
    "# 训练模型\n",
    "tree_model.fit(X_train,y_train)\n",
    "rf_model.fit(X_train,y_train)\n",
    "# 获取最优模型\n",
    "best_tree = tree_model.best_estimator_\n",
    "best_rf = rf_model.best_estimator_"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "outputs": [
    {
     "data": {
      "text/plain": "0.5126050420168067"
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred_tree = best_tree.predict(X_test)\n",
    "y_pred_rf = best_rf.predict(X_test)\n",
    "accuracy_score(y_test,y_pred_tree)\n",
    "recall_score(y_test,y_pred_tree)\n",
    "roc_auc_score(y_test,y_pred_tree)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "outputs": [
    {
     "data": {
      "text/plain": "0.5126050420168067"
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "accuracy_score(y_test,y_pred_rf)\n",
    "recall_score(y_test,y_pred_rf)\n",
    "roc_auc_score(y_test,y_pred_rf)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "outputs": [
    {
     "data": {
      "text/plain": "{'criterion': 'gini', 'max_depth': 6, 'n_estimators': 50}"
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree_model.best_params_\n",
    "rf_model.best_params_\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fpr, tpr, thresholds = metrics.roc_curve(y_test, y_pred_tree)\n",
    "roc_auc = metrics.auc(fpr, tpr)\n",
    "display = metrics.RocCurveDisplay(fpr=fpr, tpr=tpr, roc_auc=roc_auc,\n",
    "                                  estimator_name='example estimator')\n",
    "display.plot()\n",
    "plt.show()\n",
    "\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "precision2, recall2, thresholds2 = precision_recall_curve(y_test,y_pred_tree)\n",
    "plt.plot(recall2,precision2)\n",
    "plt.xlabel('recall')\n",
    "plt.ylabel('precision')\n",
    "plt.show()\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.39539202 0.21949023 0.05713839 0.32104061 0.00693875]\n",
      "[0.34103694 0.23863    0.09859084 0.29807147 0.02367076]\n"
     ]
    }
   ],
   "source": [
    "print(best_tree.feature_importances_)\n",
    "print(best_rf.feature_importances_)\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}